Transmission efficiency and reliability are important issues related to data transmission. Generally, various methods such as data segmentation and transmission and use of an error detecting code for determining the existence of data errors have been previously used to increase transmission efficiency and reliability.
Among these methods, error control is a mechanism for detecting and correcting errors generated during the data transmission. The error control method includes an automatic retransmission request (ARQ) method, a forward error correction (FEC) method, a backward error correction (BEC) method, and the like.
A cyclic redundancy check (CRC) method is an error detection method that transmits results extracted by a polynomial from data transmitted from a transmitting side. The CRC includes a redundant error checking field and checks errors by comparing results extracted by the same method from a receiving side. The CRC is a powerful technology and can be easily implemented by hardware.
In one example of the CRC, an original data frame to be transmitted from the transmitting side is divided by a CRC polynomial to produce remainder values. The remainder values comprise the error checking field. Hence, in order to generate the error checking field, the CRC polynomial is used as a divisor. The error checking field is transmitted by being attached to an original signal block to be accurately divided by a predefined polynomial, wherein a result signal block (original data+error checking field) is predefined. Herein, the predefined polynomial is referred to as the divisor or the CRC polynomial. Also, for convenience of explanation, the attachment of the aforementioned error checking field is referred to as the attachment of the CRC, and the error checking field attached to the original signal block is referred to as the CRC.
For the transmitted signal, the receiving side receives the result signal block and performs the CRC check. The receiving side checks the remainder produced by dividing the received signal block by a CRC polynomial, such as the one used in transmitting the received signal block. Error detection in the receiving side detects errors by checking whether the remainder is “0” when the data transmitted along with the remainder in the receiving side is divided by the CRC polynomial dividing the original data. Accordingly, if the remainder is not “0”, a transmission error is judged to have occurred.
In order to increase data transmission efficiency, various methods for segmenting and transmitting data exist. However, a 3rd generation partnership project (3GPP) system will be described below, for example.
FIGS. 1 and 2 are schematic views for explaining a process that segments a transport block having a long length into code blocks having a short length, and attaching the CRC, in the 3GPP system. The 3GPP system segments a transport block (TB) having a long length into code blocks (CBs) having a short length, performs a coding process on each of the plurality of code blocks having the short length, and transmits a combination thereof.
Referring to FIG. 1, after a transport block having a long length is subjected to the CRC coding process, the CRC is attached to the transport block (S101). Thereafter, the entire transmission block attached with the CRC is segmented into a plurality of code blocks having a short length (S102). Referring to FIG. 2, attachment of the CRC to the transport block and subsequent segmentation into a plurality of code blocks is illustrated with reference to numerals 201 to 203.
Referring again to FIG. 1, each of the plurality of code blocks having the short length is also subjected to the CRC coding process and CRC attachment process (S103). As shown in numeral 204 of FIG. 2, each code block includes the CRC. Each code block attached with a CRC is then input into a channel encoder and subjected to a channel coding process (S104). Thereafter, each code block is subjected to a rate matching process (S105) and a code block junction and channel interleaving process (S106). Finally, each code block is transmitted to the receiving side.
However, a structure of a signal block having a long length, such as a transport block, which includes signal blocks having a short length, such as code blocks, as in the 3GPP system, for example, may be problematic.
For example, errors undetected by the CRC for the signal block having the short length may occur in the receiving signal. Thus, there may be an error corresponding to the remainder “0” upon dividing the receiving signal by the CRC generating equation in the receiving side as described above. Moreover, the error undetected by the CRC for the signal block having the short length may not be detected by the CRC for the signal block having the long length, which includes the signal block having the short length. Accordingly, although the signal block having the long length is segmented into signal blocks having the short length and the CRC is attached at each step, there exists an undetected error pattern at both signal blocks.